#pragma once
#include<iostream>
#include<vector>

int Test1()
{
    std::cout<<"I'm Test1"<<std::endl;
    return 0;
}


int Test2()
{
    std::cout<<"I'm Test2"<<std::endl;


    return 0;
}


int Test3()
{
    std::cout<<"I'm Test3"<<std::endl;

    return 0;
}

typedef int(* MyTest)();

class Test
{
    public:
    Test()
    {
        _test.push_back(Test1);
        _test.push_back(Test2);
        _test.push_back(Test3);

    }
    const MyTest& operator[](int i) const
    {
        return _test[i];
    }
    std::vector<MyTest> _test;
};